package sub

import (
	"context"

	"google.golang.org/grpc"
	"google.golang.org/grpc/credentials/insecure"
	"google.golang.org/grpc/metadata"
)

// func NewInterGrpcConnect(cfg *CliCfg) (*grpc.ClientConn, error) {
// 	conn, err := grpc.NewClient(cfg.QPAddress, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithUnaryInterceptor(cfg.UnaryClientInterceptor))
// 	if err != nil {
// 		return nil, err
// 	}

// 	return conn, nil
// }

func NewGrpcConnect(qpAddr string) (*grpc.ClientConn, error) {
	conn, err := grpc.NewClient(qpAddr, grpc.WithTransportCredentials(insecure.NewCredentials()))
	if err != nil {
		return nil, err
	}

	return conn, nil
	// 读取自签名证书
	// pem, err := os.ReadFile("/Users/regulus/source/go_src/src/github.com/qiupus/cert.pem")
	// if err != nil {
	// 	return nil, err
	// }

	// certPool := x509.NewCertPool()
	// if !certPool.AppendCertsFromPEM(pem) {
	// 	return nil, fmt.Errorf("无法添加服务端证书")
	// }

	// // 创建TLS配置
	// creds := credentials.NewTLS(&tls.Config{
	// 	RootCAs: certPool, // 信任服务端证书
	// })

	// // 建立连接
	// conn, err := grpc.NewClient(qpAddr, grpc.WithTransportCredentials(creds))
	// if err != nil {
	// 	return nil, err
	// }

	// return conn, nil
}

func NewCtxWithToken(token string) context.Context {
	ctx := context.Background()
	md := metadata.Pairs("authorization", "Bearer "+token)
	ctx = metadata.NewOutgoingContext(ctx, md)
	return ctx
}
